package edu.uoc.tdp.client.gestors;

import java.rmi.RemoteException;
import edu.uoc.tdp.client.Client;
import edu.uoc.tdp.client.comu.Util;
import edu.uoc.tdp.client.pantalles.PantallaLogin;
import edu.uoc.tdp.comu.beans.Usuari;
import edu.uoc.tdp.comu.excepcionsRemotes.ExcepcioSQLRemota;

public class GestorLogin {
	
	private PantallaLogin pantalla;
	
	public GestorLogin(PantallaLogin pantalla){
		this.pantalla = pantalla; 
	}
	
	public void BotoAcceptar() {

		try {
			Usuari usuari = null;
						
			String login = pantalla.GetUsuari();
			String contrasenya = pantalla.GetContrasenya();
			
			try {
				usuari = GestorRMI.rmi.GetUsuari(login);
			}catch (ExcepcioSQLRemota e) {
				e.printStackTrace();
			} catch (RemoteException e) {
				Util.MissatgeError("Login.ErrorConnexio");
			}catch(Exception e){
				e.printStackTrace();
				return;
			}
			
			Client.usuariConnectat = usuari;
		
			if (usuari.getContrasenya() == null){
				Util.MissatgeError("Login.UsuariIncorrecte");
				return;
			}
				
			if (!usuari.getContrasenya().equals(contrasenya)){
				Util.MissatgeError("Login.ContrasenyaIncorrecta");
				return;				
			}
			
			Client.usuariConnectat = usuari;	
			Client.escriptori.ActivarElsPuntsDeMenuSegonsElPerfil(usuari.getIdPerfil());
			
			pantalla.TancarFinestra();
			
		} catch (Exception e){
			e.printStackTrace();
		}
	}
	
	public void BotoCancellar(){
		try{
			Client.usuariConnectat = null;
			Client.escriptori.PuntDeMenuConnexio(true);
		}
		catch(Exception e){
			e.printStackTrace();	
		}
	}
}
